The invention relates to software application development and run time environments. More particularly, the invention pertains to World Wide Web application development and run time environments.
The recent explosion in use of the World Wide Web (hereinafter the Web) has created a increased need for Web application software developers. One of the largest growth areas in the Web and Web application software development has been in the transaction of business over the Internet, including both retailer to consumer transactions and business to business transactions. For instance, many traditional businesses have added an Internet site to their stable of retail outlets through which consumers can purchase goods. In addition, many new businesses have xe2x80x9copened upxe2x80x9d on the Web that have no traditional, physical, retail outlets, but transact business solely (or at least primarily) over the Web. Examples of such Web business sites include Amazon.com which sells primarily books and other entertainment media, CDNow.com which sells primarily compact discs, and Etoys.com which sells primarily children""s toys.
The transaction of business via the Web is commonly referred to as e-business. In a typical e-business, a company maintains and operates a Web site that can be accessed by potential consumers using Web browser software such as Netscape Navigator or Microsoft Explorer. A user accesses a retailers"" Web site in the normal fashion, such as by clicking on a hyperlink from another Web site (e.g., a search engine results page) or typing in that Web site""s URL (Universal Resource Locator) into the appropriate field on a screen display provided by the browser software. The Web host server on which the requested Web page resides returns a Web page to the user""s computer (herein termed client machine) which then displays the selected Web page on the user""s monitor.
For exemplary purposes, let us assume that a user accesses a home page of an e-business retailer that sells compact discs. The home page typically will contain graphics, text and various hyperlinks to other Web pages, including at least one page that can be used for entering an order for one or more compact discs. When the user clicks on that particular hyperlink, it causes the browser software to send a request over the network to the relevant Web server for that page. The Web server returns that page to the client machine for display on the consumer""s monitor. The page would typically include a plurality of questions and fields in which the consumer is to fill in information in answer to those questions, such as name, address, telephone number, credit card number, the artist and title of the desired compact disc, etc.
After the user has entered all of the required information, he will click on a button on the screen which causes the data which he just entered to be sent back to the Web server. This data essentially is a purchase order for a compact disc. At this point, the e-business retailer must process the purchase order, for the most part, in the manner that it would process any purchase order regardless of the medium through which it was received, (via the internet, via mail order, or via a consumer walking up to a cash register in a physical retail outlet). Such processing typically would include at least (1) confirmation of the credit card number and availability of enough credit to cover the purchase price of the item, (2) confirmation with an inventory database that the ordered compact disc exists and is in stock, (3) entry of all of the information in appropriate databases for purposes of tracking stock for tax and business purposes, and (4) notification of appropriate personnel in the order processing and shipping departments so that the purchase order can be physically processed to mail the compact disc to the consumer.
The software for generating and displaying the Web pages and interacting with the consumer, i.e., user interface software, may generally be termed Web software, while the software for carrying out the business transaction may generally be termed business software.
It can be seen from this example that software development for an e-business application requires knowledge of both business software development and Web software development. Historically, however, business software developers and Web software developers have worked in separate realms. That is, most business software developers know little about Web software development while Web software developers know little about business software development. As one example, business software developers typically develop software using languages such as COBOL or C++, whereas Internet software developers commonly use the HTML (Hypertext Markup Language) and Java programming languages.
In addition, a company that, prior to commencing retailing over the Web, had transacted business in more traditional fashions, such as, through physical retail outlets or mail order, usually will already have a completely developed, reliable, and familiar business software package. In order to transact business vial the Web such a company typically would need to develop an entirely new software package based on HTML in order to transact e-business. Accordingly, both companies that conduct strictly e-business as well as traditional companies that are expanding into e-business must employ Web software developers to develop the software for transacting their business over the Web. Such developers commonly have little knowledge of the business aspects of the necessary software. Accordingly, companies either must employ both business software developers who typically know little about Web software development as well as Web software developers who know little about business software development or employ either type of developer and expend significant effort in training the developer in the field in which he or she is not familiar. In either event, there are significant inefficiencies in the software development.
There are numerous available mechanisms by which the business software portion may interact with the Web software portion of an e-business. For instance, many e-business developers utilize CGIs (Common Gateway Interfaces) that interface between the web-browser and a business application program. A CGI is a program which passes a Web user""s request to an application program and receives data back from the application program for forwarding to the user. When a user fills out a form such as to order a compact disc it is more than a request for a page to be returned. Specifically, the data entered by the user must be processed by a business application program before the company""s Web server can return to the user""s browser a customized response, e.g., the requested compact disc is in stock, it will be shipped by a certain date, and the user""s credit card will be charged a certain amount. With a CGI type system, the Web server passes the information entered by the user to a small business application program running on the Web server which then processes the data and sends back to the CGI a Web page containing a confirmation message.
The software for passing data back and forth between the server and the business application program is called a Common Gateway Interface or CGI and is part of the Web""s Hypertext Transfer Protocol (HTTP). A CGI provides a consistent way for data to be passed from the user""s request to the business application program and back to the user. Since the interface is consistent, a programmer can write the business application in a number of different languages The most common language for CGI applications are C, C++, Java and Perl. The business application program is a regular program that understands HTML and, upon receipt of the information entered by the user, builds an HTML page to send back to the user. Thus, a business application program when used with a CGI type interface performs a combination of business processing as well as building the Web page to be sent back to the user""s browser.
Another common scheme for e-business applications is to use Java servlets that run on the Web server. The Java servlet replaces the CGI and runs directly on the Web server. With a Java virtual machine running in the server, e-business application programs can be implemented on the server using the Java program language. The advantage of a Java servlet running on a server over CGI, for example, is that they can execute more quickly than CGI applications. Specifically, rather than causing a separate program process to be created, each user request is invoked as a thread in a single deamon process, meaning that the amount of system overhead for each request is small. However, the Java servlet performs both business processing and building of Web pages.
Another well known method is the use of ASPs (Active Server Pages). An Active Server Page is a HTML page that includes one or more scripts that are processed on a Microsoft Web server before the page is sent to the user. It is similar to a Java servlet as discussed above in that all involved programs run on the server. The script in the Web page at the server uses the input data received as a result of the user""s request for the page to access data from a database and builds or customizes the page on the fly before sending it to the user""s browser. Again, however, the ASP performs both business processing and Web page building.
In all of the above scenarios, a software development team having knowledge of Web programming, Java, HTML, HTTP, etc., as well as business software development is needed. Further, a company""s existing business software may be completely useless for e-business.
Accordingly, it is an object of the present invention to provide a run time environment method and apparatus and framework for e-business software applications that provides significant separation of business software development from Web software development.
The invention is a new method and apparatus for application program specification and run time execution that separates business software development from Web software development. In accordance with the invention, a simple gateway servlet program running on a Web server interfaces between the user""s browser, a back-end computer which performs all of the business data processing, one or more Java beans, and one or more Java Server Pages (JSPs). When a user enters information into a page and sends it back to the Web server, this gateway servlet receives the information and sends it to a back-end computer along with information telling the back-end computer what business program (or programs) to invoke to process that data. The back-end computer then runs the program using the input data provided to it by the gateway servlet. When the program has finished running and the desired business information has been generated, the back end computer populates a User Interface (UI) record. The back-end computer sends the UI record data to the gateway servlet.
The gateway servlet then instantiates a Java bean that has been designed for that particular data-set/object, and sets the data of that UI record into the bean. The gateway servlet then invokes a Java Server Page (JSP) also resident at the application server that has been developed to operate with that bean. The JSP generates a HTML page using the information in the aforementioned bean to customize the page in accordance with the user""s original input information as processed by the business software of the back-end and then returns that page to the user""s browser for display at the user""s machine.
In this manner, the Web-based user-interface processing is entirely separated from the business processing. The interaction between the business processing and the user interface processing is through a very simple gateway servlet. Thus, a Web developer can develop the user interface (i.e., the HTML pages and how they relate to one another) essentially without the need to have any knowledge of the business software that generated the business data and the business software developer can develop all of the business processing software essentially independently of the Web software developer. The present invention also allows programs that have been written in typical business application programming languages such as COBOL and that run on typical business software systems such as mainframes to drive Web applications.